package com.example.ormlitedemo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import com.example.ormlitedemo.Pojo.UserInfo;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

import java.sql.SQLException;

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
    private static  DatabaseHelper instance;
    private static final String DATABASES_NAME="ORMLITE.db";
    public static  synchronized  DatabaseHelper getInstance(Context context){
        if (instance == null){
            synchronized (DatabaseHelper.class){
                if (instance == null){
                    instance = new DatabaseHelper(context);
                }
            }
        }
        return instance;
    }
    public DatabaseHelper(Context context) {
        super(context, DATABASES_NAME, null, 1);
        /**
         * 参数说明：
         * context：上下文。
         * databaseName： 数据库名。
         * factory： 游标实例，多数时候设置成NULL。
         * databaseVersion：数据库版本，当数据库版本升高时，会调用onUpgrade（）方法。
         */
    }

    @Override
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
/**
 * 在该方法中进行创建表操作
 * 使用OrmLite 框架的 TableUtils.createTable进行创建表操作。
 *eg.
 */
        try {
            TableUtils.createTable(connectionSource, UserInfo.class);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }

    @Override
    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        //在该方法中进行更新操作
    }
}
